HCP Terraformのephemeral workspaces(リソース自動削除設定)がProject単位で設定できるようになりました
アップデート概要
HCP Terraform/Terraform Enterpriseにはephemeral workspacesという機能があります。
この機能は、特定の日付や一定期間非アクティブなWorkspaceのリソースを自動的に削除する機能です。
例えば、「7日後に削除」と設定すると、7日後にWorkspaceでDestroy用のRunが行われリソースが削除されます。
これまでは、Workspace単位での設定が必要でしたが、今回のアップデートで、Project単位(Workspaceをまとめた単位)の設定が可能になりました。
このアップデートによって、設定漏れのリスクと設定作業の負荷が軽減されました。
例えば以下のように活用することで、組織内の自動削除運用を簡単に実現できます。
- Sandbox用のProjectを作って、ephemeral workspacesを設定
- 各ユーザーは検証時にSandbox用のProjectを使う
やってみた
ephemeral workspaces(自動削除)の設定
プロジェクトに対して、自動削除の設定をやってみます。
「Projects」 -> 「<Project名> Actions」 -> 「Edit project」の順に選択します。
「Auto-destroy workspaces」を選択します。
削除までの日数を指定します。今回はLast 1day
を設定しました。
最終更新から1日経過したWorkspaceに対して、自動削除が行われます。
ちなみに、Workspacesの一覧画面からも、各Workspaceの自動削除の設定状況が確認できます。(設定されているWorkspaceはWorkspace名の下に、Auto-destroy
が表示されます。)
動作確認
1日置いて、自動削除が行われたことを確認します。
設定したProject配下のWorkspaceを確認しました。
削除用のRunが行われており、自動削除が正常に動作していました。
補足: Workspace側で上書きができるのか
All new and existing workspace created via self-service workflows in the project will inherit this setting as their default auto-destroy configuration while allowing individual workspace owners to override for fine-grained control. This ensures that temporary resources are cleaned up to reduce cloud costs and manual configuration burden.
Workspace側で上書き可能です。
Workspaceを選び、 「Settings」 -> 「Destruction and Deletion」順に選択すると以下の用に自動削除の設定が可能です。
ちなみに、現状(2024/9/23時点)Project側では以下の設定はできません。設定したい場合は、Workspace側に設定してください。
- Stateの更新状況に関わらずX日後に削除
- 時間単位の指定(現状、日単位のみ)
おわりに
HCP Terraformのephemeral workspacesがより便利になりました。
「便利な機能なんだけど、Workspace単位だと設定忘れちゃってあまり使ってないんだよね」という方も多かったのではないでしょうか。
Project単位で設定できるように上記の問題は解消しました。私も早速自分の検証用プロジェクトに設定しました。(これで設定漏れ無くなる!)
Terraformで検証用リソース作ることがある方は、是非使ってみてください。
以上、AWS事業本部の佐藤(@chari7311)でした。